package liecai_class.day09;

import java.nio.CharBuffer;

public class Demo06 {
    public static void main(String[] args) {
        CharBuffer buf = CharBuffer.allocate(5);

        //1.向缓冲区中写入数据
        buf.put('a');//向position指向的位置写入数据，并自动将position+1
        buf.put('b');
        buf.put('c');
        //buf.put('d');
        //buf.put('e');
        //buf.put('f');//position不能大于limit，因此限制了缓冲区中写入数据的量

        //2.翻转缓冲区
        //buf.limit(buf.position());
        //buf.position(0);
        buf.flip();

        //3.读取数据
        System.out.println(buf.get());//从position指向的位置取数据返回，并自动将position+1
        System.out.println(buf.get());
        System.out.println(buf.get());
        //System.out.println(buf.get());//position不能大于limit，因此限制了缓冲区中读取数据的边界

        //4.重绕缓冲区
        buf.rewind();//将position归零，从而重新进行读取
        System.out.println(buf.get());
        System.out.println(buf.get());

        //5.清空缓冲区
        buf.clear();//将limit回到capacity位，position归0位

        //6.实验：不会读取到脏数据
        buf.put('x');
        buf.put('y');
        buf.flip();
        System.out.println(buf.get());
        System.out.println(buf.get());
        System.out.println(buf.get());
    }
}
